<?php
/**
 * This file is part of workerman.
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the MIT-LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @author walkor<walkor@workerman.net>
 * @copyright walkor<walkor@workerman.net>
 * @link http://www.workerman.net/
 * @license http://www.opensource.org/licenses/mit-license.php MIT License
 */
use \Workerman\WebServer;
use \Workerman\Worker;

// /*匿名类*/
// (new class extends WebServer
// {
// 	// public static $_mapData = [];

// 	// public function run(){
// 	// 	self::log(print_r(self::$_pidMap,true));
// 	// 	parents::run();
// 	// }

// 	// public function onWorkerStart(Worker $worker){
// 	// 	parents::onWorkerStart();
// 	// 	Worker::log('onWorkerStart');
// 	// }

//     /**/
//     // public function onMessage($connection)
//     // {
//     //     // REQUEST_URI.
//     //     $workerman_url_info = parse_url($_SERVER['REQUEST_URI']);

//     //     if (!$workerman_url_info) {
//     //         Http::header('HTTP/1.1 400 Bad Request');
//     //         $connection->close('<h1>400 Bad Request</h1>');
//     //         return;
//     //     }
//     //     /*获取path_info*/
//     //     if (preg_match('/^(.+?\.php)(\/.+)$/', $workerman_url_info['path'], $matches)) {
//     //         $workerman_url_info['path'] = $matches[1];
//     //         $_SERVER['PATH_INFO'] = $matches[2];
//     //     }

//     //     $workerman_path = isset($workerman_url_info['path']) ? $workerman_url_info['path'] : '/';

//     //     $workerman_path_info = pathinfo($workerman_path);
//     //     $workerman_file_extension = isset($workerman_path_info['extension']) ? $workerman_path_info['extension'] : '';
//     //     if ($workerman_file_extension === '') {
//     //         $workerman_path = ($len = strlen($workerman_path)) && $workerman_path[$len - 1] === '/' ? $workerman_path . 'index.php' : $workerman_path . '/index.php';
//     //         $workerman_file_extension = 'php';
//     //     }

//     //     $workerman_root_dir = isset($this->serverRoot[$_SERVER['SERVER_NAME']]) ? $this->serverRoot[$_SERVER['SERVER_NAME']] : current($this->serverRoot);

//     //     $workerman_file = "$workerman_root_dir/$workerman_path";

//     //     /*php文件*/
//     //     if ($workerman_file_extension === 'php' && !is_file($workerman_file)) {
//     //         $workerman_file = "$workerman_root_dir/index.php";
//     //         if (!is_file($workerman_file)) {
//     //             $workerman_file = "$workerman_root_dir/index.html";
//     //             $workerman_file_extension = 'html';
//     //         }
//     //     }

//     //     // File exsits.
//     //     if (is_file($workerman_file)) {
//     //         // Security check.
//     //         if ((!($workerman_request_realpath = realpath($workerman_file)) || !($workerman_root_dir_realpath = realpath($workerman_root_dir))) || 0 !== strpos($workerman_request_realpath,
//     //             $workerman_root_dir_realpath)
//     //         ) {
//     //             Http::header('HTTP/1.1 400 Bad Request');
//     //             $connection->close('<h1>400 Bad Request</h1>');
//     //             return;
//     //         }

//     //         $workerman_file = realpath($workerman_file);

//     //         // Request php file.
//     //         if ($workerman_file_extension === 'php') {
//     //             $workerman_cwd = getcwd();
//     //             chdir($workerman_root_dir);
//     //             ini_set('display_errors', 'off');
//     //             ob_start();
//     //             // Try to include php file.
//     //             try {
//     //                 // $_SERVER.
//     //                 $_SERVER['REMOTE_ADDR'] = $connection->getRemoteIp();
//     //                 $_SERVER['REMOTE_PORT'] = $connection->getRemotePort();
//     //                 include $workerman_file;
//     //             } catch (\Exception $e) {
//     //                 // Jump_exit?
//     //                 if ($e->getMessage() != 'jump_exit') {
//     //                     echo $e;
//     //                 }
//     //             }
//     //             $content = ob_get_clean();
//     //             ini_set('display_errors', 'on');
//     //             if (strtolower($_SERVER['HTTP_CONNECTION']) === "keep-alive") {
//     //                 $connection->send($content);
//     //             } else {
//     //                 $connection->close($content);
//     //             }
//     //             chdir($workerman_cwd);
//     //             return;
//     //         }

//     //         // Send file to client.
//     //         return self::sendFile($connection, $workerman_file);
//     //     } else {
//     //         // 404
//     //         Http::header("HTTP/1.1 404 Not Found");
//     //         $connection->close('<html><head><title>404 File not found</title></head><body><center><h3>404 Not Found</h3></center></body></html>');
//     //         return;
//     //     }
//     // }

//     public function __construct(){
//     	parent::__construct("http://0.0.0.0:80");
//     	$this->count = 2;
//     }

//     public function start()
//     {
//     	/*设置日志*/
//     	Worker::$logFile = __DIR__.'/log.log';

//         // WebServer
//         // $web = new static();
//         // // WebServer进程数量
//         // $web->count = 2;
//         // 设置站点根目录
//         $this->addRoot('www.your_domain.com', __DIR__ . '/web');
//     }

// })->start();

Worker::$logFile = __DIR__.'/log.log';
$web = new WebServer("http://0.0.0.0:80");
$web->count = 2;
$web->addRoot('www.your_domain.com', __DIR__ . '/web');


// 如果不是在根目录启动，则运行runAll方法
if (!defined('GLOBAL_START')) {
    Worker::runAll();
}
